home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 April: Mac OS SDK / Dev.CD Apr 99 SDK1.toast / Development Kits / Interfaces&Libraries / Universal / Interfaces / PInterfaces / Connections.p < prev    next >
Encoding:
Text File  |  1998-08-17  |  11.3 KB  |  348 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        Connections.p
  3.  
  4.      Contains:    Communications Toolbox Connection Manager Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Release:    Universal Interfaces 3.2
  8.  
  9.      Copyright:    © 1988-1998 by Apple Computer, Inc., all rights reserved
  10.  
  11.      Bugs?:        For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. }
  17. {$IFC UNDEFINED UsingIncludes}
  18. {$SETC UsingIncludes := 0}
  19. {$ENDC}
  20.  
  21. {$IFC NOT UsingIncludes}
  22.  UNIT Connections;
  23.  INTERFACE
  24. {$ENDC}
  25.  
  26. {$IFC UNDEFINED __CONNECTIONS__}
  27. {$SETC __CONNECTIONS__ := 1}
  28.  
  29. {$I+}
  30. {$SETC ConnectionsIncludes := UsingIncludes}
  31. {$SETC UsingIncludes := 1}
  32.  
  33. {$IFC UNDEFINED __CONDITIONALMACROS__}
  34. {$I ConditionalMacros.p}
  35. {$ENDC}
  36. {$IFC UNDEFINED __MACTYPES__}
  37. {$I MacTypes.p}
  38. {$ENDC}
  39. {$IFC UNDEFINED __MIXEDMODE__}
  40. {$I MixedMode.p}
  41. {$ENDC}
  42. {$IFC UNDEFINED __DIALOGS__}
  43. {$I Dialogs.p}
  44. {$ENDC}
  45.  
  46.  
  47. {$PUSH}
  48. {$ALIGN MAC68K}
  49. {$LibExport+}
  50.  
  51.  
  52. CONST
  53.     curCMVersion                = 2;                            {  current Connection Manager version }
  54.  
  55.     curConnEnvRecVers            = 0;                            {     current Connection Manager Environment Record version }
  56.  
  57.                                                                 {  CMErr  }
  58.     cmGenericError                = -1;
  59.     cmNoErr                        = 0;
  60.     cmRejected                    = 1;
  61.     cmFailed                    = 2;
  62.     cmTimeOut                    = 3;
  63.     cmNotOpen                    = 4;
  64.     cmNotClosed                    = 5;
  65.     cmNoRequestPending            = 6;
  66.     cmNotSupported                = 7;
  67.     cmNoTools                    = 8;
  68.     cmUserCancel                = 9;
  69.     cmUnknownError                = 11;
  70.  
  71.  
  72. TYPE
  73.     CMErr                                = OSErr;
  74.  
  75.  
  76. CONST
  77.     cmData                        = $00000001;
  78.     cmCntl                        = $00000002;
  79.     cmAttn                        = $00000004;
  80.     cmDataNoTimeout                = $00000010;
  81.     cmCntlNoTimeout                = $00000020;
  82.     cmAttnNoTimeout                = $00000040;
  83.     cmDataClean                    = $00000100;
  84.     cmCntlClean                    = $00000200;
  85.     cmAttnClean                    = $00000400;                    {         Only for CMRecFlags (not CMChannel) in the rest of this enum     }
  86.     cmNoMenus                    = $00010000;
  87.     cmQuiet                        = $00020000;
  88.     cmConfigChanged                = $00040000;
  89.  
  90. { CMRecFlags and CMChannel        }
  91. {        Low word of CMRecFlags is same as CMChannel    }
  92.  
  93. TYPE
  94.     CMRecFlags                            = LONGINT;
  95.     CMChannel                            = INTEGER;
  96.  
  97.  
  98.  
  99. CONST
  100.     cmStatusOpening                = $00000001;
  101.     cmStatusOpen                = $00000002;
  102.     cmStatusClosing                = $00000004;
  103.     cmStatusDataAvail            = $00000008;
  104.     cmStatusCntlAvail            = $00000010;
  105.     cmStatusAttnAvail            = $00000020;
  106.     cmStatusDRPend                = $00000040;                    {  data read pending     }
  107.     cmStatusDWPend                = $00000080;                    {  data write pending     }
  108.     cmStatusCRPend                = $00000100;                    {  cntl read pending     }
  109.     cmStatusCWPend                = $00000200;                    {  cntl write pending     }
  110.     cmStatusARPend                = $00000400;                    {  attn read pending     }
  111.     cmStatusAWPend                = $00000800;                    {  attn write pending     }
  112.     cmStatusBreakPend            = $00001000;
  113.     cmStatusListenPend            = $00002000;
  114.     cmStatusIncomingCallPresent    = $00004000;
  115.     cmStatusReserved0            = $00008000;
  116.  
  117.  
  118. TYPE
  119.     CMStatFlags                            = UInt32;
  120.  
  121. CONST
  122.     cmDataIn                    = 0;
  123.     cmDataOut                    = 1;
  124.     cmCntlIn                    = 2;
  125.     cmCntlOut                    = 3;
  126.     cmAttnIn                    = 4;
  127.     cmAttnOut                    = 5;
  128.     cmRsrvIn                    = 6;
  129.     cmRsrvOut                    = 7;
  130.  
  131.  
  132. TYPE
  133.     CMBufFields                            = UInt16;
  134.     CMBuffers                            = ARRAY [0..7] OF Ptr;
  135.     CMBufferSizes                        = ARRAY [0..7] OF LONGINT;
  136.  
  137. CONST
  138.     cmSearchSevenBit            = $00000001;
  139.  
  140.  
  141. TYPE
  142.     CMSearchFlags                        = UInt16;
  143.  
  144. CONST
  145.     cmFlagsEOM                    = $00000001;
  146.  
  147.  
  148. TYPE
  149.     CMFlags                                = UInt16;
  150.     ConnEnvironRecPtr = ^ConnEnvironRec;
  151.     ConnEnvironRec = RECORD
  152.         version:                INTEGER;
  153.         baudRate:                LONGINT;
  154.         dataBits:                INTEGER;
  155.         channels:                CMChannel;
  156.         swFlowControl:            BOOLEAN;
  157.         hwFlowControl:            BOOLEAN;
  158.         flags:                    CMFlags;
  159.     END;
  160.  
  161.     ConnRecordPtr = ^ConnRecord;
  162.     ConnPtr                                = ^ConnRecord;
  163.     ConnHandle                            = ^ConnPtr;
  164. {$IFC TYPED_FUNCTION_POINTERS}
  165.     ConnectionToolDefProcPtr = FUNCTION(hConn: ConnHandle; msg: INTEGER; p1: LONGINT; p2: LONGINT; p3: LONGINT): LONGINT;
  166. {$ELSEC}
  167.     ConnectionToolDefProcPtr = ProcPtr;
  168. {$ENDC}
  169.  
  170. {$IFC TYPED_FUNCTION_POINTERS}
  171.     ConnectionSearchCallBackProcPtr = PROCEDURE(hConn: ConnHandle; matchPtr: Ptr; refNum: LONGINT);
  172. {$ELSEC}
  173.     ConnectionSearchCallBackProcPtr = ProcPtr;
  174. {$ENDC}
  175.  
  176. {$IFC TYPED_FUNCTION_POINTERS}
  177.     ConnectionCompletionProcPtr = PROCEDURE(hConn: ConnHandle);
  178. {$ELSEC}
  179.     ConnectionCompletionProcPtr = ProcPtr;
  180. {$ENDC}
  181.  
  182. {$IFC TYPED_FUNCTION_POINTERS}
  183.     ConnectionChooseIdleProcPtr = PROCEDURE;
  184. {$ELSEC}
  185.     ConnectionChooseIdleProcPtr = ProcPtr;
  186. {$ENDC}
  187.  
  188.     ConnectionToolDefUPP = UniversalProcPtr;
  189.     ConnectionSearchCallBackUPP = UniversalProcPtr;
  190.     ConnectionCompletionUPP = UniversalProcPtr;
  191.     ConnectionChooseIdleUPP = UniversalProcPtr;
  192.     ConnRecord = RECORD
  193.         procID:                    INTEGER;
  194.         flags:                    CMRecFlags;
  195.         errCode:                CMErr;
  196.         refCon:                    LONGINT;
  197.         userData:                LONGINT;
  198.         defProc:                ConnectionToolDefUPP;
  199.         config:                    Ptr;
  200.         oldConfig:                Ptr;
  201.         asyncEOM:                LONGINT;
  202.         reserved1:                LONGINT;
  203.         reserved2:                LONGINT;
  204.         cmPrivate:                Ptr;
  205.         bufferArray:            CMBuffers;
  206.         bufSizes:                CMBufferSizes;
  207.         mluField:                LONGINT;
  208.         asyncCount:                CMBufferSizes;
  209.     END;
  210.  
  211.  
  212. CONST
  213.                                                                 {  CMIOPB constants and structure  }
  214.     cmIOPBQType                    = 10;
  215.     cmIOPBversion                = 0;
  216.  
  217.  
  218. TYPE
  219.     CMIOPBPtr = ^CMIOPB;
  220.     CMIOPB = RECORD
  221.         qLink:                    QElemPtr;
  222.         qType:                    INTEGER;                                {  cmIOPBQType  }
  223.         hConn:                    ConnHandle;
  224.         theBuffer:                Ptr;
  225.         count:                    LONGINT;
  226.         flags:                    CMFlags;
  227.         userCompletion:            ConnectionCompletionUPP;
  228.         timeout:                LONGINT;
  229.         errCode:                CMErr;
  230.         channel:                CMChannel;
  231.         asyncEOM:                LONGINT;
  232.         reserved1:                LONGINT;
  233.         reserved2:                INTEGER;
  234.         version:                INTEGER;                                {  cmIOPBversion  }
  235.         refCon:                    LONGINT;                                {  for application  }
  236.         toolData1:                LONGINT;                                {  for tool  }
  237.         toolData2:                LONGINT;                                {  for tool  }
  238.     END;
  239.  
  240.  
  241. CONST
  242.     uppConnectionToolDefProcInfo = $0000FEF0;
  243.     uppConnectionSearchCallBackProcInfo = $00000FC0;
  244.     uppConnectionCompletionProcInfo = $000000C0;
  245.     uppConnectionChooseIdleProcInfo = $00000000;
  246.  
  247. FUNCTION CallConnectionToolDefProc(hConn: ConnHandle; msg: INTEGER; p1: LONGINT; p2: LONGINT; p3: LONGINT; userRoutine: ConnectionToolDefUPP): LONGINT;
  248.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  249.     INLINE $205F, $4E90;
  250.     {$ENDC}
  251.  
  252. PROCEDURE CallConnectionSearchCallBackProc(hConn: ConnHandle; matchPtr: Ptr; refNum: LONGINT; userRoutine: ConnectionSearchCallBackUPP);
  253.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  254.     INLINE $205F, $4E90;
  255.     {$ENDC}
  256.  
  257. PROCEDURE CallConnectionCompletionProc(hConn: ConnHandle; userRoutine: ConnectionCompletionUPP);
  258.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  259.     INLINE $205F, $4E90;
  260.     {$ENDC}
  261.  
  262. PROCEDURE CallConnectionChooseIdleProc(userRoutine: ConnectionChooseIdleUPP);
  263.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  264.     INLINE $205F, $4E90;
  265.     {$ENDC}
  266.  
  267. FUNCTION NewConnectionToolDefProc(userRoutine: ConnectionToolDefProcPtr): ConnectionToolDefUPP;
  268.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  269.     INLINE $2E9F;
  270.     {$ENDC}
  271.  
  272. FUNCTION NewConnectionSearchCallBackProc(userRoutine: ConnectionSearchCallBackProcPtr): ConnectionSearchCallBackUPP;
  273.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  274.     INLINE $2E9F;
  275.     {$ENDC}
  276.  
  277. FUNCTION NewConnectionCompletionProc(userRoutine: ConnectionCompletionProcPtr): ConnectionCompletionUPP;
  278.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  279.     INLINE $2E9F;
  280.     {$ENDC}
  281.  
  282. FUNCTION NewConnectionChooseIdleProc(userRoutine: ConnectionChooseIdleProcPtr): ConnectionChooseIdleUPP;
  283.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  284.     INLINE $2E9F;
  285.     {$ENDC}
  286.  
  287.  
  288. FUNCTION InitCM: CMErr;
  289. FUNCTION CMGetVersion(hConn: ConnHandle): Handle;
  290. FUNCTION CMGetCMVersion: INTEGER;
  291. FUNCTION CMNew(procID: INTEGER; flags: CMRecFlags; VAR desiredSizes: CMBufferSizes; refCon: LONGINT; userData: LONGINT): ConnHandle;
  292. PROCEDURE CMDispose(hConn: ConnHandle);
  293. FUNCTION CMListen(hConn: ConnHandle; async: BOOLEAN; completor: ConnectionCompletionUPP; timeout: LONGINT): CMErr;
  294. FUNCTION CMAccept(hConn: ConnHandle; accept: BOOLEAN): CMErr;
  295. FUNCTION CMOpen(hConn: ConnHandle; async: BOOLEAN; completor: ConnectionCompletionUPP; timeout: LONGINT): CMErr;
  296. FUNCTION CMClose(hConn: ConnHandle; async: BOOLEAN; completor: ConnectionCompletionUPP; timeout: LONGINT; now: BOOLEAN): CMErr;
  297. FUNCTION CMAbort(hConn: ConnHandle): CMErr;
  298. FUNCTION CMStatus(hConn: ConnHandle; VAR sizes: CMBufferSizes; VAR flags: CMStatFlags): CMErr;
  299. PROCEDURE CMIdle(hConn: ConnHandle);
  300. PROCEDURE CMReset(hConn: ConnHandle);
  301. PROCEDURE CMBreak(hConn: ConnHandle; duration: LONGINT; async: BOOLEAN; completor: ConnectionCompletionUPP);
  302. FUNCTION CMRead(hConn: ConnHandle; theBuffer: UNIV Ptr; VAR toRead: LONGINT; theChannel: CMChannel; async: BOOLEAN; completor: ConnectionCompletionUPP; timeout: LONGINT; VAR flags: CMFlags): CMErr;
  303. FUNCTION CMWrite(hConn: ConnHandle; theBuffer: UNIV Ptr; VAR toWrite: LONGINT; theChannel: CMChannel; async: BOOLEAN; completor: ConnectionCompletionUPP; timeout: LONGINT; flags: CMFlags): CMErr;
  304. FUNCTION CMIOKill(hConn: ConnHandle; which: INTEGER): CMErr;
  305. PROCEDURE CMActivate(hConn: ConnHandle; activate: BOOLEAN);
  306. PROCEDURE CMResume(hConn: ConnHandle; resume: BOOLEAN);
  307. FUNCTION CMMenu(hConn: ConnHandle; menuID: INTEGER; item: INTEGER): BOOLEAN;
  308. FUNCTION CMValidate(hConn: ConnHandle): BOOLEAN;
  309. PROCEDURE CMDefault(VAR theConfig: Ptr; procID: INTEGER; allocate: BOOLEAN);
  310. FUNCTION CMSetupPreflight(procID: INTEGER; VAR magicCookie: LONGINT): Handle;
  311. FUNCTION CMSetupFilter(procID: INTEGER; theConfig: UNIV Ptr; count: INTEGER; theDialog: DialogPtr; VAR theEvent: EventRecord; VAR theItem: INTEGER; VAR magicCookie: LONGINT): BOOLEAN;
  312. PROCEDURE CMSetupSetup(procID: INTEGER; theConfig: UNIV Ptr; count: INTEGER; theDialog: DialogPtr; VAR magicCookie: LONGINT);
  313. PROCEDURE CMSetupItem(procID: INTEGER; theConfig: UNIV Ptr; count: INTEGER; theDialog: DialogPtr; VAR theItem: INTEGER; VAR magicCookie: LONGINT);
  314. PROCEDURE CMSetupXCleanup(procID: INTEGER; theConfig: UNIV Ptr; count: INTEGER; theDialog: DialogPtr; OKed: BOOLEAN; VAR magicCookie: LONGINT);
  315. PROCEDURE CMSetupPostflight(procID: INTEGER);
  316. FUNCTION CMGetConfig(hConn: ConnHandle): Ptr;
  317. FUNCTION CMSetConfig(hConn: ConnHandle; thePtr: UNIV Ptr): INTEGER;
  318. FUNCTION CMIntlToEnglish(hConn: ConnHandle; inputPtr: UNIV Ptr; VAR outputPtr: Ptr; language: INTEGER): OSErr;
  319. FUNCTION CMEnglishToIntl(hConn: ConnHandle; inputPtr: UNIV Ptr; VAR outputPtr: Ptr; language: INTEGER): OSErr;
  320. FUNCTION CMAddSearch(hConn: ConnHandle; theString: Str255; flags: CMSearchFlags; callBack: ConnectionSearchCallBackUPP): LONGINT;
  321. PROCEDURE CMRemoveSearch(hConn: ConnHandle; refnum: LONGINT);
  322. PROCEDURE CMClearSearch(hConn: ConnHandle);
  323. FUNCTION CMGetConnEnvirons(hConn: ConnHandle; VAR theEnvirons: ConnEnvironRec): CMErr;
  324. FUNCTION CMChoose(VAR hConn: ConnHandle; where: Point; idle: ConnectionChooseIdleUPP): INTEGER;
  325. PROCEDURE CMEvent(hConn: ConnHandle; {CONST}VAR theEvent: EventRecord);
  326. PROCEDURE CMGetToolName(procID: INTEGER; VAR name: Str255);
  327. FUNCTION CMGetProcID(name: Str255): INTEGER;
  328. PROCEDURE CMSetRefCon(hConn: ConnHandle; refCon: LONGINT);
  329. FUNCTION CMGetRefCon(hConn: ConnHandle): LONGINT;
  330. FUNCTION CMGetUserData(hConn: ConnHandle): LONGINT;
  331. PROCEDURE CMSetUserData(hConn: ConnHandle; userData: LONGINT);
  332. PROCEDURE CMGetErrorString(hConn: ConnHandle; id: INTEGER; VAR errMsg: Str255);
  333. FUNCTION CMNewIOPB(hConn: ConnHandle; VAR theIOPB: CMIOPBPtr): CMErr;
  334. FUNCTION CMDisposeIOPB(hConn: ConnHandle; theIOPB: CMIOPBPtr): CMErr;
  335. FUNCTION CMPBRead(hConn: ConnHandle; theIOPB: CMIOPBPtr; async: BOOLEAN): CMErr;
  336. FUNCTION CMPBWrite(hConn: ConnHandle; theIOPB: CMIOPBPtr; async: BOOLEAN): CMErr;
  337. FUNCTION CMPBIOKill(hConn: ConnHandle; theIOPB: CMIOPBPtr): CMErr;
  338. {$ALIGN RESET}
  339. {$POP}
  340.  
  341. {$SETC UsingIncludes := ConnectionsIncludes}
  342.  
  343. {$ENDC} {__CONNECTIONS__}
  344.  
  345. {$IFC NOT UsingIncludes}
  346.  END.
  347. {$ENDC}
  348.